עלי להציג את מספר הפוסטים ברענון און ליין, והאם הקוד הבא אפשר לקצר אותו כדי שיקרא את הנתונים יותר מהר ויציג אותם או שאיך שזה מוצג למטה זה הכי קצר שאפשר

<?php
  define('D',true);
  require_once('../include/config.php');
  require_once('../include/connect.php');
$link = mysql_connect(D_SERVER, D_USERNAME, D_PASSWORD);
mysql_select_db(D_DATABASE);
mysql_set_charset("utf8",$link);

    $query = "SELECT COUNT(*) as totalno FROM ".D_PREFIX."Post WHERE Stat = '1'";
    $result = mysql_query($query);
    while($data=mysql_fetch_array($result)){
    $count = $data['totalno'];
    }
echo $count;  
?>

5 תשובות

avatar ענה Splash ב 20 למאי 2015 #

קודם כל יש כאן כמה בעיות בסיסיות -
1.אתה משתמש בדריבר שכבר כמה שנים לא נתמך באופן רשמי,אני לא רואה שום סיבה להשתמש בוא ועוד יותר לא מצליח להבין מדוע אנשים שלמדו ב 2-3 שנים אחרונות עדיין עובדים דרכו.
2.הלולאה הזאת מיותרת לגמרי,הרי זה ברור שהשאילתה תציג תוצאה אחת או אפס כך שאתה יכול פשוט לוותר על הלולאה ולהשתמש ישר ב fetch_array.
3.אין לך כאן שום טיפול בשגיאות ואתה מסתמך על זה שזה תמיד יעבוד. אתה לא בודק אם המסד הצליח להתחבר,אם קיימת הטבלה או אם השאילתה החזירה נתונים.
---------------------------------------------

מבחינת יעילות כמובן שאם זאת שאילתה שרצה הרבה פעמים והכמות עדכונים מועטה יהיה עדיף לשמור את הנתונים במטמון ולרענן אותם כל X שניות\דקות.

avatar ענה itzik ב 20 למאי 2015 #

הקוד שהבאתי עובד ולוקח לו שנייה כדי להציג נתונים, השאילה היא אםאני יוותר על הלולאה זה יקצר את מהלך הצגת הנתונים.

ומבחינת יעילות אתה צודק זה רץ הרבה פעמים, ואין המון עדכונים והורדות (מדובר על פרוייקט התחלתי.

אבל כל מה שרציתי שבכניסה לדף הוא יציג ישר את מספר הנתונים ולא יקח לו כמה שניות אחרי טעינת הדף כדי להציג את הנתונים.

<script>
$(document).ready(function(){setInterval(function(){$.get('../pkg_nb-dw.php',function(response){$('.dwn').html(response);});},2000);});
</script>

avatar ענה Splash ב 20 למאי 2015 #

אי אפשר למדוד יעילות ככה,אתה צריך לבדוק מה בדיוק לוקח לו זמן יכול להיות שברמת התשתית לוקח לבקשה המון זמן להגיע ובמקרה כזה אין לך מה לעשות חוץ מלהחליף חברת אחסון.
הדבר היחיד שאתה יכול לעשות ברמת הקוד זה לוודא שיש ל stat אינדקס

avatar ענה itzik ב 20 למאי 2015 #

בדיוק החלפתי Vps ואני רואה שינוי מהותי בקשר לטעינת נתונים והצגתם.

avatar ענה ldbrgr ב 13 ליוני 2015 #

<?php

// Set up ..
define('D', true);
require '../include/config.php';
require '../include/connect.php';

try {
  // lets connect to our database ..
 
  $dns = 'mysql:host=' . D_SERVER . ';dbname=' . D_DATABASE . ';charset=utf8';
 
  $dbh = new PDO($dns, D_USERNAME, D_PASSWORD, array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
  ));
} catch(PDOException $e) {
  die($e); // for debug only, we need to use our custom message
}

// lets count the rows in our table

$query = "SELECT COUNT(1) AS `count` FROM `".D_PREFIX."Post` WHERE Stat = '1';";

echo $dbh->query($query)->fetchObject()->count;

// good bye my lover :D


-תשתמש ב
COUNT(1)
הוא יותר מהיר.
-אל תעבוד עם MySQL, כמו ש@Splash הזכיר כרב למעלה, הדרייבר הזה מיושן ואין לו כבר תמיכה.
-תוסיף אינדקס לטבלה.

המממ בהצלחה בונבונירה שלי D: